package fr.afcepf.iziticket.dao;

import java.util.ArrayList;
import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import fr.afcepf.iziticket.dao.interfaces.DAOCommande;
import fr.afcepf.iziticket.entities.Commande;
import fr.afcepf.iziticket.entities.Reservation;

@Transactional
public class DAOCommandeImpl extends ObjectDaoImpl<Commande> implements DAOCommande{

	@Override
	public Commande get(int paramId) {

		return (Commande) hibernateTemplate.get(Commande.class, paramId);
		
	}

	public DAOCommandeImpl() {
		super();
		setTableName("Commande");
	}

	
	public void addReservationToCommande(int idResa, int idCommande){
		Commande commande = (Commande) hibernateTemplate.get(Commande.class, idCommande);
		Reservation resa = (Reservation) hibernateTemplate.get(Reservation.class, idResa);
		commande.getReservations().add(resa);
		resa.setCommande(commande);
		
	}

	@SuppressWarnings("unchecked")

	public List<Commande> getCommandesByUtilisateur(int idUtilisateur){
		List<Commande> liste = new ArrayList<Commande>();
		
		String query = "from Commande as c where c.utilisateur.idUtilisateur ="+idUtilisateur+"";
			
		liste = (List<Commande>) hibernateTemplate.find(query);
		return liste;
	}

}
